package com.lagou.task09;

public class SubAbstractTest extends AbatractTest {
    @Override
    public void show() {
        System.out.println("其实我是被迫重写的，否则我也得变成抽象的呀!");
    }

    public static void main(String[] args) {

        // 1.声明个类类型的引用指向本类类型的对象
        SubAbstractTest sat = new SubAbstractTest();
        sat.show();

        System.out.println("-----------------------------");
        // 2.声明AbstractTest类型的引用指向子类的对象，形成了多态。
        //多态的使用场合之二：直接在方法体使用抽象类的引用指向子类类型的对象。
        //AbatractTest at = new SubAbstractTest();
        AbatractTest at = new SubAbstractTest2();
        // 编译阶段调用父类版本，运行阶段调用该类版本
        at.show();
        ((SubAbstractTest2) at).test();
    }
}
